Spread spectrum techniques is a method for converting a relatively narrow band signal into a wider band signal by mixing the narrow band signal with pseudo-random noise (PRN, or spreading code). The original signal may be recovered by reversing the process. Spread spectrum techniques have several useful properties, among which is a method for sharing spectrum among multiple communications channels. Other methods of multiple access to shared spectrum include time division multiple access (TDMA) which assigns specific time periods to each transmit channel, and frequency division multiple access (FDMA) which assigns subsets of the available spectrum for each transmission channel. Spread spectrum techniques divide neither transmission time nor transmission frequency but instead allow simultaneous transmission through the selection of unique spreading code sequences for each channel—a method referred to as code division multiple access (CDMA).
In a typical spread spectrum radio receiver, the signal received through the antenna undergoes analog processing at radio frequencies. This processing may include filtering, amplification, frequency translation and digital sampling. The signal may then require an additional frequency translation to completely remove any frequency offsets from baseband. In a mobile environment, this stage may also be responsible for eliminating the Doppler effects of moving antennas. In modern receivers, this stage is typically implemented in the digital domain, though an analog implementation is also possible.
A typical spread spectrum radio receiver may include multiple correlators and control loops around the correlators and frequency translators to permit continuous refinement of measurements and tracking of the signal, and to permit decoding of any additional modulation that may be used to carry a data payload.
Typically the spreading code generator in a spread spectrum system is implemented as either a linear feedback shift registers, or as a pre-calculated code stored in memory (referred to as a “memory code”). In both these cases, the spreading code is known by the receiver at the time of manufacture.
Successful estimation of an unknown target spreading code in a received signal possible at run time could be a very important tool for code detection purposes.